Alteryx で複数の Gzip ファイルを読み込む
alteryxでGzip圧縮された複数のファイル(CSV、Excel)を読み込む方法です。
前提条件
下記の環境で検証しています。
・Windows 10 Pro
・Alteryx Designer 2022.3.1
AlteryxにおけるGzipファイルの読み込み
Alteryx 2018.4 以降では、Gzipファイルからのデータ読み込みに対応しています。
Alteryx2018.4新機能紹介:Gzipファイルからデータの読み込みに対応しました | Developers IO
ファイル形式は、下記に記載の拡張子に対応しています。
単一ファイルの読み込み
一般的にファイル読み込みに用いるデータ入力ツールが使用できます。
読み込み対象として、Gzip 形式のファイルを選択すると、どの拡張子として解釈するかを指定します。
Excelの場合、読み込み対象のシートもあわせて指定します。
複数ファイルの場合
複数の圧縮ファイル(CSV、Excel)を一括で読み込む場合、動的入力ツールが使用できます。
なお、動的入力ツールでの一括読み込みの場合、正しくすべてのファイルを読み込むには、各ファイルでスキーマ(列数、データ型、列名)が一致する必要がある点に注意が必要です。
alteryxでの複数 Excel/CSV 読み込みのパターンと注意点 | Developers IO
CSVの場合
作業フォルダ配下の、Data
フォルダに Gzip ファイルが格納されているとします。
ワークフローは下記のようになり、ディレクトリツールで取得した[FullPath]で、読み込みファイルパス全体を変更しています。
※動的入力ツールでの一般的な複数ファイル読み込みの詳細は、下記を参照ください。
Alteryxで複数ファイルをまとめて読み込む | Developers IO
複数Gzipファイル読み込み時のポイントとして、フォーミュラツールで下記の設定を行っています。
[FullPath] + "|||datafile.csv"
通常のファイルであれば、そのままフルパスを使用すればよいですが、Gzip ファイルの場合、対象のファイルがどの拡張子か上記のように指定した上で、パスを与える必要があります。
「ユーザー設定 > 詳細 > プロパティウィンドウにXMLを表示する」を有効化し、データ入力ツールで単一の Gzip ファイルとその拡張子を指定した場合のXMLビューを見ると、内部的に上記の形式でファイルを指定していることを確認できます。
Excelの場合
Excelでも同様のワークフローで一括読み込み可能です。対象のシートを指定する必要があるので、フォーミュラツールの式は、下記のようになります。
[FullPath] + "|||datafile.xlsx[`Sheet1$`]"
ここでは、各ファイルの「Sheet1」シートのデータを読み込む設定となっています。
読み込む対象のシートに別の名称が付与されている場合、適宜この部分を変更すれば対応可能です。
さいごに
Gzipでの圧縮ファイルの場合、通常のワイルドカード指定は動作しないので、「ディレクトリツール+動的入力ツール」での複数ファイル読み込みとする必要があります。
拡張子の指定については、XML表示でツール内部でどのように指定しているか見ることができる点は勉強になりました。
今回は以上になります。この内容が何かの参考になれば幸いです。
参考
Combine multiple GZIP csv files | Alteryx Community
Input multiple tsv.gz files with different names from one directory. | Alteryx community